//这里存放一些通用的js方法

/** 根据fmt格式化日期，fmt格式如yyyy-MM-dd hh:mm:ss */
Date.prototype.formate=function(fmt) {       
     var o = {        
     "M+" : this.getMonth()+1, //月份       
     "d+" : this.getDate(), //日       
     "h+" : this.getHours() == 0 ? 12 : this.getHours(), //小时       
     "H+" : this.getHours(), //小时       
     "m+" : this.getMinutes(), //分       
     "s+" : this.getSeconds(), //秒       
     "q+" : Math.floor((this.getMonth()+3)/3), //季度       
     "S" : this.getMilliseconds() //毫秒       
     };       
     var week = {       
     "0" : "\u65e5",       
     "1" : "\u4e00",       
     "2" : "\u4e8c",       
     "3" : "\u4e09",       
     "4" : "\u56db",       
     "5" : "\u4e94",       
     "6" : "\u516d"      
     };       
     if(/(y+)/.test(fmt)){       
         fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));       
     }       
     if(/(E+)/.test(fmt)){       
         fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]);       
     }       
     for(var k in o){       
         if(new RegExp("("+ k +")").test(fmt)){       
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));       
         }       
     }       
     return fmt;       
  } 

/** 自定义日期格式化，格式2011-02-23 */
var dateFormat=function(date){
		if(date==null) return '&nbsp;';
		var month=(date.getMonth()+1)<10?'0'+(date.getMonth()+1):(date.getMonth()+1);
		var day=date.getDate()<10?'0'+date.getDate():date.getDate();
		return date.getFullYear()+'-'+month+'-'+day;
}

/** 把2011-02-23格式字符串转化为Date类型 */
var dateParse=function(str){
	var strs=str.split("-");
	return new Date(strs[0],parseInt(strs[1],10)-1,parseInt(strs[2],10));
}

/** 比较日期的相差的天数 date2-date1 */
var dateDiffDays=function(date1,date2){
	var d1=dateParse(date1);
	var d2=dateParse(date2);
	return (d2.getTime()-d1.getTime())/86400000;
}

/** 为String添加replaceAll方法 */
String.prototype.replaceAll = function(s1,s2){   
   return this.replace(new RegExp(s1,"gm"),s2);   
}

/**
* 为String添加删除左右两端的空格的trim方法
*/
String.prototype.trim=function(){
     return this.replace(/(^\s*)(\s*$)/g, '');
}

/**
 * 统计字符串字节数
 *
 * return integer
 */
String.prototype.byteCount = function(){
	return this.replace(/[^\x00-\xff]/g, "***").length;  
}

/**
 * JS中有一个Math对象，round方法可以实现整数的四舍五入，
 * 比如Math.round(123.81)得到的结果是124，如果实现小数四舍五入，则用此方法。
 * 如123.8168我想得到四舍五入到小数点后两位，得到123.82
 * @param {Object} orgNum 原小数
 * @param {Object} position 保留小数位数
 * @return {TypeName} 
 */
function round(orgNum,position){
	return(Math.round(a*Math.pow(10,b))*Math.pow(10,-b));
}
/**
 * 验证是否为中文
 * @param {Object} data
 * @return {TypeName} 
 */
function isChinse(data){
	///^[\\u4E00-\\u9FA5]+$/   =/^[\\u4E00-\\u9FA5]+$/;
	var pattern=/^[\u4E00-\u9FA5]+$/;
	if(data != null){
		for(var i=0;i<data.length;i++){
			if(!pattern.test(data)){
				return false;
			}
		}
		
	}
return true;
}
/**
 * 验证是否字母和字母组合
 * @param {Object} data
 * @return {TypeName} 
 */
function isNumberAndChar(data){
	var pattern=/^[0-9a-zA-Z]*$/;
    if(pattern.test(data)){
    	return true;
    }else{
    	return false;
    }
}

/**
 * 验证是否是手机
 * @param {Object} data
 * @return {TypeName} 
 */
function isMobile(data){
	return (/^(?:1[358])\d{6}(\d{3}|\*{3})$/.test(trim(data)));   
}

/**
 * 验证是否字母组成
 * @param {Object} data
 * @return {TypeName} 
 */
function isChar(data){
	var pattern=/^[a-zA-Z]*$/;
	if(pattern.test(data)){
		return true;
	}else{
		return false;
	}
}
/**
 * 验证是否由数字组成
 * @param {Object} data
 * @return {TypeName} 
 */
function isNumber(data){
	var pattern=/^[0-9]*$/;
    if(pattern.test(data)){
    	return true;
    }else{
    	return false;
    }
}/**
  * 获取传入字符串的长度
  * @param {Object} strTemp
  * @return {TypeName} 
  */
function checkCharLength(strTemp)   
{   
	 var i,sum;   
	 sum=0;   
	 for(i=0;i<strTemp.length;i++)   
	 {   
	  if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))   
	   sum=sum+1;   
	  else  
	   sum=sum+2;   
	 }   
	 return sum;   
}   

/**
 * 数字转换成大写(网上拷的，格式有点乱)
 * @param {Object} num
 * @return {TypeName} 
 */ 
function    Chinese(num)  
   {   
           if(!/^\d*(\.\d*)?$/.test(num))
     {
      alert("你输入的不是数字，请重新输入!");   
      return    false;
     }    
           var    AA    =    new    Array("零","一","二","三","四","五","六","七","八","九");
           var    BB    =    new    Array("","十","百","千","万","亿","点","");               
           var    a    =    (""+    num).replace(/(^0*)/g,    "").split("."),    k    =    0,    re    =    "";
          for(var    i=a[0].length-1;    i>=0;    i--)
           {   
        switch(k)   
                   {
       case    0    :   
                re    =    BB[7]    +    re;  
           break;   
                   case    4    :   
                  if(!new    RegExp("0{4}\\d{"+    (a[0].length-i-1)    +"}$").test(a[0]))   
                                    re    =    BB[4]    +    re;  
        break;   
                    case    8    :  
               re    =    BB[5]    +    re;  
         BB[7]    =    BB[5];  
         k    =    0;  
        break;   
                   }   
                   if(k%4    ==    2    &&    a[0].charAt(i)=="0"    &&    a[0].charAt(i+2)    !=    "0")    re    =    AA[0]    +    re;   
                   if(a[0].charAt(i)    !=    0)    re    =    AA[a[0].charAt(i)]    +    BB[k%4]    +    re;   
       k++;   
           }    
           if(a.length>1) {   
                   re    +=    BB[6];   
                   for(var    i=0;    i<a[1].length;    i++)    re    +=    AA[a[1].charAt(i)];   
           }   
   
           return    re;   
   }



/**
 * 验证email格式
 * @param {Object} str
 * @return {TypeName} 
 */
function isEmail(str){

	var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
	
	return reg.test(str);

}

/**
 * ajax编码 
 */
var ajaxEncode=function(o){
	return encodeURIComponent(encodeURIComponent(o));
}



/**构造虚拟的表单*/
/**
 * @param id 此表单的唯一性，由调用函数进行相应的配置
 * @param url 此表单需要跳转的相应的页面
 * @param paramTitles 参数数组
 * @param paramValues 参数值
 * @attention 参数数组与参数值分别为两个数组，因此，其位置应该一一对应 
*/
function buildForm(id,url,paramTitles,paramValues){
	if($("#"+id)!=null){
		$("#"+id).remove();
	}
	/**进行位数判断*/
	if(paramTitles.length!=paramValues.length){
		alert("请确保传入参数与参数值一一对应");
		return false;
	}
	
	var sform='<form action="'+url+'" id="'+id+'" method="post" target="_blank">';
	for(var i=0;i<paramTitles.length;i++){
		sform+='<input type="hidden" name="'+paramTitles[i]+'" value="'+paramValues[i]+'" />';
	}
	sform+='</form>';
	$("body").append(sform);
	//提交当前构造的表单
	$("#"+id).submit();
}

/**
*检查姓名的格式
*中文长度：10个汉字以内
* 英文长度：25个字符以内（以 “/” 分隔）
* 验证成功，返回为true 否则为false
*/
function checkName(userName){
	var resultEN;
	var resultCH;
	
	var reg = /^[A-Za-z]+(\/([A-Za-z]+))+$/;
	resultEN = reg.exec(userName);
	reg = /^[\u4e00-\u9fa5]+$/;
	resultCH = reg.exec(userName);
	
	if((resultEN!=null&&userName.length<25)||(resultCH!=null&&userName.length<10&&userName.length>1)){
		return true;
	}else{
		return false;
	}
}